在建立對象時,常會使用建構函數Constructor,它能決定該對象如何初始化,不過建構函數又分成有帶參跟沒帶參,究竟什麼時候該用哪種?作用上又有什麼差異?
雖然建構函數看起來是基本Java語法,但在Spring Boot等框架中,對象的創建與初始化往往依賴建構函數,因此了解其應用對於開發非常重要唷!
帶參建構函數,可以在創建對象時,直接初始化該對象的屬性,確保每個對象都帶有必要的屬性,減少後續額外設置的情形。
public class Task {
private String taskName;
public Task(String taskName) {
this.taskName = taskName;
}
}
上述代表在創建Task對象時,必須傳遞taskName,確保每個Task都有名稱,避免屬性為空之情形。
無參建構函數又稱為默認建構函數,允許創建對象時不指定初始值,可增加靈活度。
public class Task {
private String taskName;
private String taskDesc;
// 無參建構函數,Spring框架要求
public Task() {
}
// 帶參建構函數
public Task(String taskName, String taskDesc) {
this.taskName = taskName;
this.taskDesc = taskDesc;
}
// Setter/Getter
}
Task task = new Task();
task.setTaskName("Report");
綜合上述,帶參建構函數,適合用於對象創建時就確定所有屬性,避免後續設置的麻煩;
無參建構函數則適合需要靈活創建對象的場景,特別是在框架(如Spring、Hibernate),無參建構函數是必須的,允許對象創建後再初始化,適用於依賴框架自動注入屬性或需要延遲設置屬性的情況。
這些建構函數的選擇,可根據Java框架以及業務需求來進行設計選擇。